home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / cat / showimpo.i < prev    next >
Text File  |  1997-10-26  |  5KB  |  185 lines

  1. IMPLEMENTATION MODULE showImport;
  2.  
  3. FROM SYSTEM     IMPORT ADDRESS, CAST;
  4. (* MM2 *)
  5. IMPORT GrafBase;
  6.  
  7. (* CAT *)
  8. FROM Void       IMPORT v;
  9.  
  10. IMPORT WdwManager;
  11. IMPORT MausTauschrsc;
  12.  
  13. IMPORT mtUtils;
  14. IMPORT MagicAES;
  15. IMPORT mtAppl;
  16.  
  17.  
  18. VAR box : POINTER TO ARRAY[0..200] OF MagicAES.OBJECT;
  19. VAR rect : GrafBase.Rectangle;
  20.     abs,
  21.     pos : LONGCARD;
  22.     inWindow: BOOLEAN;
  23.     wdwHandle: INTEGER;
  24.  
  25. PROCEDURE bProc (wdw, vdi : INTEGER; env : ADDRESS; mx, my : INTEGER; kstate, buts : BITSET; clicks :INTEGER): BOOLEAN;
  26. BEGIN
  27.   RETURN FALSE;
  28. END bProc;
  29.  
  30. PROCEDURE kProc (wdw, vdi : INTEGER; env: ADDRESS; taste: INTEGER; key, scan : CHAR; kstate : BITSET): BOOLEAN;
  31. BEGIN
  32.   RETURN FALSE
  33. END kProc;
  34.  
  35. PROCEDURE closeP (wdw, vdi: INTEGER; env : ADDRESS; force : BOOLEAN): BOOLEAN;
  36. BEGIN
  37.   RETURN force
  38. END closeP;
  39.  
  40. PROCEDURE topP (wdw, vdi: INTEGER; env: ADDRESS): BOOLEAN;
  41. BEGIN
  42.   RETURN TRUE
  43. END topP;
  44.  
  45. PROCEDURE untopP (wdw, vdi: INTEGER; env: ADDRESS);
  46. END untopP;
  47.  
  48. PROCEDURE setWork (wdw, vdi: INTEGER; env: ADDRESS; doc: GrafBase.LongRect; slided: BOOLEAN);
  49. END setWork;
  50.  
  51. PROCEDURE getRect (wdw, vdi: INTEGER; env: ADDRESS; VAR r : GrafBase.Rectangle);
  52. BEGIN
  53.   rect := r;
  54.   box^[0].obX := r.x;
  55.   box^[0].obY := r.y;
  56. END getRect;
  57.  
  58. PROCEDURE redrawInfo (wdw, vdi : INTEGER; env : ADDRESS; clip : GrafBase.Rectangle);
  59. BEGIN
  60.   MagicAES.ObjcDraw (env, 0, 8, clip);
  61. END redrawInfo;
  62.  
  63. PROCEDURE updateP (wdw, vdi: INTEGER; env: ADDRESS; doIt: BOOLEAN);
  64. BEGIN
  65.   IF doIt 
  66.   THEN 
  67.     MagicAES.WindUpdate (MagicAES.BEGUPDATE);
  68.   ELSE
  69.     MagicAES.WindUpdate (MagicAES.ENDUPDATE);
  70.   END;
  71. END updateP;
  72.  
  73. PROCEDURE Open (absolute : LONGCARD);
  74.   VAR full : GrafBase.Rectangle;
  75.       comps: BITSET;
  76.       oldFrame: CHAR;
  77.       tmp  : BITSET;
  78. BEGIN
  79.   box := MausTauschrsc.TreeAddr^[MausTauschrsc.import];
  80.   box^[MausTauschrsc.fill].obWidth := 1;
  81.   abs := absolute;
  82.   pos := 0;
  83.   (* Jetzt Fllstil auf Solid und Farbe setzen, falls Farbe *)
  84.   IF mtAppl.Bitplanes > 1
  85.   THEN
  86.     tmp := box^[MausTauschrsc.fill].obSpec.Box.flags;
  87.     tmp := tmp - {0..6} + {4..6} + {1};
  88.     box^[MausTauschrsc.fill].obSpec.Box.flags := tmp;
  89.   END;
  90.   (* Outlined abschalten und Rand auf 1 Pixel setzen *)
  91.   mtUtils.ExclFlag (box, 0, MagicAES.OUTLINED);
  92.   oldFrame := box^[0].obSpec.Box.frame;
  93.   box^[0].obSpec.Box.frame := CAST(CHAR, -1);
  94.   MagicAES.FormCenter(box, rect);
  95.   mtUtils.ObjcArea (box, 0, rect);
  96.   (* Jetzt Fenster fr Box ”ffnen *)
  97.   comps := {MagicAES.NAME, MagicAES.MOVE};
  98.   MagicAES.WindCalc (MagicAES.WCBORDER, comps, rect, full);
  99.   IF full.y < WdwManager.deskSize.y THEN full.y := WdwManager.deskSize.y END;
  100.   IF full.x < WdwManager.deskSize.x THEN full.x := WdwManager.deskSize.x END;
  101.   IF WdwManager.OpenWindow (bProc, kProc, WdwManager.handleTimerProc (NIL), 
  102.                             full, full, comps, 
  103.                             FALSE, '', 'CAT', WdwManager.snapProc (NIL),
  104.                             closeP, redrawInfo, topP, 
  105.                             untopP, updateP, setWork, getRect, 
  106.                             WdwManager.hideProc(NIL), 0, box, 
  107.                             TRUE, TRUE, FALSE, FALSE, wdwHandle, v.int)
  108.   THEN
  109.     inWindow := TRUE;
  110.     WdwManager.FullRedrawWdw (wdwHandle);
  111.   ELSE
  112.     inWindow := FALSE;
  113.     mtUtils.ExclFlag (box, 0, MagicAES.OUTLINED);
  114.     box^[0].obSpec.Box.frame := oldFrame;
  115.     MagicAES.WindUpdate (MagicAES.BEGUPDATE);
  116.     MagicAES.FormCenter(box, rect);
  117.     MagicAES.FormDial(MagicAES.FMDSTART, rect, rect);
  118.     MagicAES.ObjcDraw(box, 0, 5, rect);
  119.   END;
  120. END Open;
  121.  
  122. (*
  123. PROCEDURE Open(absolute : LONGCARD);
  124. (* ™ffnet die Box *)
  125. BEGIN
  126.   box := MausTauschrsc.TreeAddr^[MausTauschrsc.import];
  127.   box^[MausTauschrsc.fill].obWidth := 1;
  128.   abs := absolute;
  129.   pos := 0;
  130.   MagicAES.FormCenter(box, rect);
  131.   MagicAES.FormDial(MagicAES.FMDSTART, rect, rect);
  132.   MagicAES.ObjcDraw(box, 0, 5, rect);
  133. END Open;
  134. *)
  135.  
  136. PROCEDURE SetNew(newValue : LONGCARD);
  137. (* Setzt neue Fllstandsanzeige *)
  138. VAR rect : GrafBase.Rectangle;
  139.     oldW,
  140.     newW : INTEGER;
  141. BEGIN
  142.   INC(pos, newValue);
  143.   oldW := box^[MausTauschrsc.fill].obWidth;
  144.   IF pos > abs THEN 
  145.     pos := abs;
  146.     newW := box^[MausTauschrsc.afill].obWidth;
  147.   ELSE
  148.     newW := INTEGER( SHORT( ( LONG(CARDINAL(box^[MausTauschrsc.afill].obWidth)) * pos) DIV abs));
  149.   END;
  150.   IF (oldW # newW) & (newW > 0) THEN
  151.     box^[MausTauschrsc.fill].obWidth := newW;
  152.     WITH rect DO
  153.       x := box^[0].obX + box^[MausTauschrsc.afill].obX + oldW;
  154.       y := box^[0].obY + box^[MausTauschrsc.afill].obY;
  155.       w := newW - oldW + 1;
  156.       h := box^[MausTauschrsc.afill].obHeight;
  157.     END;
  158.     IF inWindow
  159.     THEN
  160.       WdwManager.RedrawWdw (wdwHandle, rect);
  161.     ELSE
  162.       MagicAES.ObjcDraw(box, MausTauschrsc.afill, 2, rect);
  163.     END;
  164.   END;
  165. END SetNew;
  166.  
  167. PROCEDURE Close();
  168. (* Schliežt die Box wieder *)
  169. BEGIN
  170.   IF inWindow
  171.   THEN
  172.     inWindow := FALSE;
  173.     v.bool := WdwManager.CloseWindow (wdwHandle, TRUE);
  174.     wdwHandle := -1;
  175.   ELSE
  176.     MagicAES.FormDial(MagicAES.FMDFINISH, rect, rect);
  177.     MagicAES.WindUpdate (MagicAES.ENDUPDATE);
  178.   END;
  179. END Close;
  180.  
  181. BEGIN
  182.   wdwHandle := -1;
  183. END showImport.
  184.  
  185.